package com.njupt.simulation.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.HashMap;
import java.util.List;
import java.util.Map;


@Data
@AllArgsConstructor
@NoArgsConstructor
public class Station implements Node{
    private  Integer id;
    // 地球站名称
    private String earthStationName;

    // 经度，取值范围 -180~180，保留2位小数
    private double longitude;

    // 纬度，取值范围 -90~90，保留2位小数
    private double latitude;

    // 高度，单位 m，取值范围 0~999999999，保留2位小数
    private double height;

    // 最低仰角，单位 °，取值范围 -90~90，保留2位小数
    private double elevation;

    //发射端邻频边带配置判断
    private int transAdjacentBandFlag;
    //发射端邻频边带配置
    private List<AdjacentBand> transAdjacentBand;

    // 发射频段下限，单位 MHz，取值范围 0~999999999，保留2位小数
    private double transFreqMin;

    // 发射频段上限，单位 MHz，取值范围 0~999999999，保留2位小数
    private double transFreqMax;

    // 发射功率，单位 dBW，取值范围 -9999~9999，保留2位小数
    private double transmitPower;

    // 发射端极化方式，leftCircular、rightCircular、Vertical、Horizontal
    private String transPolarization;

    // 接收频段下限，单位 MHz，取值范围 0~999999999，保留2位小数
    private double receiveFreqMin;

    // 接收频段上限，单位 MHz，取值范围 0~999999999，保留2位小数
    private double receiveFreqMax;

    // 等效噪声温度，单位 K
    private double noiseTemperature;

    // 接收极化方式，leftCircular、rightCircular、Vertical、Horizontal
    private String receivePolarization;

    // 天线类型，ITU465、ITU580
    private String antennaType;

    // 天线效率，取值范围 0~1，保留2位小数
    private double efficiency;

    // 天线口径，单位 m，取值范围 0~99，保留2位小数
    private double diameter;

    // 主瓣波束最大增益，单位 dBi，取值范围 -9999~9999，保留2位小数
    private double gain;

    // 半波束角，单位 °，取值范围 0~180，保留2位小数
    private double halfBeamAngle;

}
